1. Field of the Invention
The present invention generally relates to a digital audiovisual magnetic disk doubly linked list recording format extension to multiple devices for recording, playing and otherwise manipulating streaming data. In particular, the invention is directed to coordinating data transfer activities among multiple streaming drives or disk-based storage systems that can support both streaming functionality and conventional random block I/O functionality.
2. Background Information
Disk drives are known that can support both conventional random block input/output (I/O) and streaming I/O. For example, disk-based storage is described in U.S. patent application Ser. No. 09/397,152 filed Sep. 15, 1999 entitled DISK-BASED STORAGE SYSTEM RESPONSIVE TO A DIRECTION-SELECTION SIGNAL FOR AUTONOMOUSLY CONTROLLING SEEKS IN A SEQUENCE DETERMINED BY THE DIRECTION-SELECTION SIGNAL AND A LOCALLY-STORED DOUBLY LINKED LIST and in U.S. patent application, Ser. No. 09/515,275, filed Feb. 29, 2000 entitled METHOD FOR PROCESSING FILE SYSTEM SERVICE REQUESTS IN A COMPUTER HAVING AN ATTACHED DISK DRIVE THAT CAN REPRODUCE STREAM DATA AND NON-STREAM DATA, the disclosures of which, along with the disclosure of IEEE Standard 1394 xe2x80x9cHigh Performance Serial Busxe2x80x9d, are hereby incorporated by reference in their entireties.
When writing to or reading from a disk based storage system, operating systems typically service file allocation service requests from an application program utilizing a file allocation structure of the operating system known as a file allocation table (FAT). In general, there are two main types of file allocation service requests. Conventional input/output (I/O) block requests to read or write data asynchronously, and streaming I/O operations and requests to read or write data isochronously.
Streaming data can represent items of a temporal nature such as audiovisual (A/V) data, musical data (e.g. MP3 data), video on demand, networked video, or any other continuous data. Streaming data can also represent data structures that are inherently linear sequential data structures. Inherently linear data structures must be sequentially processed and accessed. These data structures are contrasted with non-streaming data that can be randomly accessed for processing with no inherent access order dependency.
Conventional I/O block requests are asynchronous because they can be nonconsecutive requests which occur randomly. This is in contrast to streaming I/O requests that are associated with a particular stream of data and are received consecutively so that the continuity of a stream can be preserved when the stream is written into or read from memory. Preserving the continuity of data is important in video applications to present smooth visual imagery to the observer without creating any jitter or perceptible discontinuities in the data presented to the user.
Some of the difficulties and associated inefficiencies in handling streaming data can be attributed to the fact that file systems used in conventional operating systems were not specifically designed to support disk drives and other storage media for accommodating streaming behavior. Despite this, there is a desire to efficiently accommodate streaming data, and it is commercially unacceptable to treat a streaming drive as an exclusively streaming resource within a computing system because of the desire to have a single disk drive support the entire computer system that is sold to a customer.
Conventional operating systems, and the applications they support, support named entities such as files and objects. Disk drives deal in blocks of data, with one or more blocks being associated with a particular file or object. The file system of an operating system establishes a one-to-one correspondence between the named entities and a logical set of storage blocks on the disk drive having an associated logical block address (LBA). A disk drive is typically viewed as a succession of sequential blocks, moving from a first block to a last block. The operating system can perform I/O requests using LBAs, while the disk drive operates in relation to its own physical space and translates the logical block address into a physical address, such as a head/cylinder/sector (HCS) address. Therefore, the file management system of a conventional operating system faces a difficult task when it must handle streaming I/O data, because it must simultaneously deliver as many streams of data as possible with no error, while minimizing the latency of the data. This task is compounded when the disk storage media is configured as a disk-based storage system having multiple disk media (e.g. multiple disk media).
Accordingly, it would be desirable to efficiently process file system service requests for both isochronous and asynchronous applications, particularly when the disk storage media includes multiple disk media. It would also be desirable to achieve this without having to modify existing file systems.
Exemplary embodiments of the present invention are directed to a data storage device and associated method for reproducing a stored data stream with at least one data storage media having addressable storage locations storing data segments and pointers. The data segments define the stored data stream, and the pointers indicate addressable storage locations for other segments in the stored data stream. Each pointer includes a field for identifying whether the data stored includes the addressable storage location of the segment indicated by the pointer. A controller is responsive to the data segments for reproducing a stored data stream in accordance with an autonomously-defined sequence determined by the pointers.
According to exemplary embodiments the at least one data storage media includes plural rotating disk media, and the controller includes plural controllers, each of which is associated with one of the plural rotating disk media. The data storage media can support aggregated streaming and is extensible and scalable up to a bandwidth of an isochronous interconnect of the plural controllers.
Exemplary embodiments include a data storage media that includes a doubly linked list of pointers to autonomously control a plurality of separate rotating disk media while providing a continuous stream of data. Exemplary embodiments can be scaled to any number of separate disk media.
Exemplary embodiments can interconnect multiple disk media using an IEEE Standard 1394 interface, or using a Fibre Channel bus interface.
Exemplary embodiments can use a storage media that can support at least one of an asynchronous data transfer and isochronous data transfer.
According to exemplary embodiments, the data segments constitute video data that can be stored and retrieved using a plurality of interconnected drives.
Exemplary embodiments can use a data sequence that possesses a data field format comprising a head pointer and a tail pointer.
Exemplary embodiments can use an addressable data location that comprises at least one tag field that autonomously directs the controller to move from one storage media to another storage media. For example, a plurality of tags can be used to create a tree structure. Different tags can be used to denote different data paths and a heuristic algorithm can be used to determine which path a particular operation should take.
The controller can be phase locked loop (PLL) based controller.
Exemplary embodiments can store duplicate data segments in two or more separate locations on a storage media.
Exemplary embodiments can provide a data storage device as an object in an object oriented environment.
Exemplary embodiments include data storage media that implements and supports a database construct, such as standard query language (SQL).